#ifndef INFOLAYER_H_
#define INFOLAYER_H_

#include "gui/layers/DynamicLayer.h"
#include "map/Intersection.h"

namespace gui {

/* Capa de informacion para el usuario, se actualiza a partir de los cambios en
 * el auto y en la ruta que sigue. A diferencia del resto de los layers este layer
 * no usa posicion con respecto al mapa sino con respecto a la esquina de arriba a la
 * izquierda de la pantalla. */
class InfoLayer: public DynamicLayer {
public:

	InfoLayer(SurfaceFactory* surfaceFactory, CarController* carController, RouteController* routeController, int height);

	virtual ~InfoLayer();

	virtual Surface* getPortion(Portion portion);

	virtual void update(bool exceedingMaxSpeed);

	virtual void update(int carSpeed);

	virtual void update(RoadNavigation roadNavigation, bool goingWrongWay);

private:

	RoadNavigation roadNavigation;
	bool goingWrongWay;
	bool exceedingMaxSpeed;
	int carSpeed;
	int maxCarSpeed;
	GUIObjectDrawer drawer;
	int height;

	virtual void genericUpdate();

};

}

#endif /* INFOLAYER_H_ */
